package com.guigu.gulicommon.constant.enumes.order;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import com.guigu.gulicommon.api.BaseDataEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 状态相关常量枚举类
 */
@Getter
@AllArgsConstructor
public enum MqMsgStatus implements BaseDataEnum {
    /**
     * 新建
     */
    NEW(0, "新建"),
    /**
     * 已发送
     */
    SENT_SUCCESS(1, "已发送"),
    /**
     * 抵达错误
     */
    WRONG_ARRIVAL(2, "错误抵达"),
    /**
     * 已抵达
     */
    RECEIVED_SUCCESS(3, "已抵达"),
    ;

    @EnumValue
    private final Integer code;

    @JsonValue
    private final String name;

    /**
     * 通过code得到枚举
     *
     * @param code 插入数据库的值
     * @return 枚举
     */
    @Override
    public BaseDataEnum getEnumByCode(Integer code) {
        for (MqMsgStatus value : MqMsgStatus.values()) {
            if (value.getCode().equals(code)) {
                return value;
            }
        }
        return null;
    }

    /**
     * 通过name得到枚举
     *
     * @param name 显示的值
     * @return 枚举
     */
    @Override
    public BaseDataEnum getEnumByName(String name) {
        for (MqMsgStatus value : MqMsgStatus.values()) {
            if (value.getName().equals(name)) {
                return value;
            }
        }
        return null;
    }
}
